Skip to content

Conversation

@0224LJH
Copy link
Contributor

@0224LJH 0224LJH commented Nov 20, 2025

🧷 문제 링크

https://www.acmicpc.net/problem/1944

🧭 풀이 시간

60분

👀 체감 난이도

✏️ 문제 설명

세준이는 어느 날 획기적인 로봇을 한 개 개발하였다. 그 로봇은 복제 장치를 이용하면 자기 자신을 똑같은 로봇으로 원하는 개수만큼 복제시킬 수 있다. 세준이는 어느 날 이 로봇을 테스트하기 위하여 어떤 미로에 이 로봇을 풀어 놓았다. 이 로봇의 임무는 미로에 흩어진 열쇠들을 모두 찾는 것이다. 그리고 열쇠가 있는 곳들과 로봇이 출발하는 위치에 로봇이 복제할 수 있는 장치를 장착해 두었다.

N*N의 정사각형 미로와 M개의 흩어진 열쇠의 위치, 그리고 이 로봇의 시작 위치가 주어져 있을 때, 모든 열쇠를 찾으면서 로봇이 움직이는 횟수의 합을 최소로 하는 프로그램을 작성하여라. 로봇은 상하좌우 네 방향으로 움직이며, 로봇이 열쇠가 있는 위치에 도달했을 때 열쇠를 찾은 것으로 한다. (복제된 로봇이어도 상관없다) 하나의 칸에 동시에 여러 개의 로봇이 위치할 수 있으며, 로봇이 한 번 지나간 자리라도 다른 로봇 또는 자기 자신이 다시 지나갈 수 있다. 복제에는 시간이 들지 않으며, 로봇이 움직이는 횟수의 합은 분열된 로봇 각각이 움직인 횟수의 총 합을 말한다. 복제된 로봇이 열쇠를 모두 찾은 후 같은 위치로 모일 필요는 없다.

🔍 풀이 방법

오랜만에 좀 괜찮은 문제였다. 결국 로직을 최소화하니, 나온 결론이 MST였다. 그렇기에 BFS를 통해 이차원 배열로되어있는 상태를, Edge와 Node의 형태로 변환후, 크루스칼을 이용하여서 문제를 해결하였다.

⏳ 회고

@0224LJH 0224LJH added the success 👍 해설을 보지 않고 풀었을 때 label Nov 20, 2025
@ShinHeeEul ShinHeeEul merged commit 22a571c into main Nov 20, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

success 👍 해설을 보지 않고 풀었을 때

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants